Skip to content

Add CI/CD for Chrome extension#15

Open
DIodide wants to merge 1 commit intomainfrom
ci/extension-cicd
Open

Add CI/CD for Chrome extension#15
DIodide wants to merge 1 commit intomainfrom
ci/extension-cicd

Conversation

@DIodide
Copy link
Member

@DIodide DIodide commented Mar 18, 2026

Summary

  • CI workflow (extension-ci.yml): Runs npm ci + npm run build on every PR and push to main that touches extension/. Uploads the build as an artifact for easy testing.
  • CD workflow (extension-publish.yml): Automatically uploads and publishes to the Chrome Web Store when a GitHub release is created with an ext-v* tag (e.g. ext-v1.5.0). Can also be triggered manually via workflow_dispatch.

Setup required

Add these 4 secrets to the repo (Settings > Secrets > Actions):

Secret Description
CHROME_EXTENSION_ID The extension ID (iejdjhiphonjpgaobmpniifeipiomgee)
CHROME_CLIENT_ID OAuth 2.0 client ID from Google Cloud Console
CHROME_CLIENT_SECRET OAuth 2.0 client secret
CHROME_REFRESH_TOKEN Refresh token obtained via the OAuth flow for the Chrome Web Store API

To get the OAuth credentials, follow the Chrome Web Store API guide.

Release workflow

  1. Bump the version in extension/public/manifest.json
  2. Merge to main
  3. Create a GitHub release with tag ext-v<version> (e.g. ext-v1.5.0)
  4. The workflow automatically builds, uploads, and publishes to the Chrome Web Store

Test plan

  • Verify CI workflow triggers on PRs touching extension/
  • Verify build artifact is uploaded successfully
  • Configure Chrome Web Store API secrets
  • Test publish workflow via workflow_dispatch
  • Test end-to-end with a release tag

🤖 Generated with Claude Code

- CI: builds and validates the extension on every PR/push touching extension/
- CD: publishes to Chrome Web Store on release tags (ext-v*)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant